1. Field of the Invention
This invention is related to the field of integrated circuit design and, more particularly, to managing macros during the design of integrated circuits.
2. Description of the Related Art
The design of an integrated circuit, from concept to “tape out” (i.e. the transmission of the data describing the integrated circuit to the fabrication foundry), is a complex series of parallel, interdependent processes such as logic design, circuit design, synthesis, timing analysis, place and route, verification, etc. At each point in the design, the integrated circuit can be represented in a variety of fashions.
Typically, early in the design cycle, the integrated circuit is divided into blocks of functionality. The division can be based on the designer's assessment of a logical and reasonable division, the amount of interconnect that would be needed between blocks, the flow of data through the integrated circuit and the operations to be performed on the data, etc. Within some of the blocks, macros can be defined. A corresponding custom circuit may be designed for each macro, with the goal of implementing desired functionality in an efficient fashion (in terms of space occupied by the circuit, timing, power consumption, etc.). Again, the designer typically determines which circuitry is to be implemented as a macro.
The blocks are generally represented as descriptions in a hardware design language (HDL) such as Verilog, VHDL, etc. For example, register-transfer level (RTL) descriptions are often used. The macros can be instantiated in the RTL descriptions and connected to other circuitry described in the RTL through signal names created in the RTL. Typically, the macros are placed within an area defined for the integrated circuit according to the designer's estimation of an appropriate location based on dataflow, block size and dimensions, and other considerations. The remaining logic in the macro is synthesized, and the corresponding circuitry is placed around the macros.